(function () {
    var Bmob = require("bmob").Bmob;
    var bmob_config = require("./config/bmob.conf.json");
    //初始化，第一个参数是Application_id，第二个参数是REST API Key
    Bmob.initialize(bmob_config.APPLICATION_ID, bmob_config.REST_API_KEY);
    module.exports = {
        // 短信服务
        sms: {
            // 请求短信验证码
            requestSmsCode: function (mobilePhoneNumber, template) {
                printData("请求短信验证码:", mobilePhoneNumber);
                if (template) {
                    return Bmob.Sms.requestSmsCode({ mobilePhoneNumber: mobilePhoneNumber, template: template })
                };
                return Bmob.Sms.requestSmsCode({ mobilePhoneNumber: mobilePhoneNumber });
            },
            // 验证短信验证
            verifySmsCode: function* (mobilePhoneNumber, code) {
                printData("Bmob验证短信验证码：", mobilePhoneNumber, code);
                return Bmob.Sms.verifySmsCode(mobilePhoneNumber, code);
            },
            // 发送自定义短信内容
            requestSms: function (mobilePhoneNumber, content, sendTime) {
                var data = {
                    mobilePhoneNumber: mobilePhoneNumber,
                    content: content
                };
                sendTime ? data.sendTime = moment.format(sendTime + "", "YYYY-MM-DD HH:mm:ss") : false
                printData("Bmob发送自定义短信：", data);
                return Bmob.Sms.requestSms(data);
            },
            // 查询短信状态
            querySms: function (smsId) {
                return Bmob.Sms.querySms(smsId);
            }
        },
        // 支付服务
        pay: {
            // 调起网页支付
            webPay: function (money, type, des) {
                return Bmob.Pay.webPay(money, type, des);
            },
            // 查询订单状态
            queryOrder: function (orderid) {
                return Bmob.Pay.queryOrder(orderid);
            }
        },
        // 图片处理
        image: {
            // 微缩图
            thumb: function (option) {
                // mode:模式 0: 指定宽， 高自适应，等比例缩放
                // 模式 1: 指定高， 宽自适应，等比例缩放
                // 模式 2: 指定最长边，短边自适应，等比例缩放
                // 模式 3: 指定最短边，长边自适应，等比例缩放
                // 模式 4: 指定最大宽高， 等比例缩放
                // 模式 5: 固定宽高， 居中裁剪    
                // image:原图片url
                // width:宽度，模式 0, 4, 5必填
                // height：高度，模式 1, 4, 5必填
                // longEdge：长边，模式 2必填
                // shortEdge：短边，模式 3必填
                // quality：质量，选填, 范围 1-100
                // outType：输出类型，0:默认，输出url；1:输出base64编码的字符串流
                return Bmob.Image.thumbnail(option);
            },
            // 水印图
            watermark: function (option) {
                return Bmob.Image.watermark(option);
            }
        },
        // 文件
        file: {
            // 文件上传
            upload: function (name, file) {
                return new Bmob.File2(name, file).save();
            }
        }
    };
    // console.log(bmob);
} ());